Generally described, computing devices and communication networks can be utilized to exchange information. In a common application, a computing device can request content from another computing device via the communication network. For example, a user at a personal computing device can utilize a software browser application to request a Web page from a server computing device via the Internet. In such embodiments, the user computing device can be referred to as a client computing device and the server computing device can be referred to as a content provider.
Content providers are generally motivated to provide requested content to client computing devices often with consideration of efficient transmission of the requested content to the client computing device and/or consideration of a cost associated with the transmission of the content. For larger scale implementations, a content provider may receive content requests from a high volume of client computing devices, which can place a strain on the content provider's computing resources. Additionally, the content requested by the client computing devices may be made up of a number of distinct components (e.g., identifiable resources), which can further place additional strain on the content provider's computing resources.
With reference to an illustrative example, a requested Web page, or original content, may be associated with a number of additional resources, such as images or videos, which are to be displayed with, or as part of, the Web page. In one specific embodiment, the additional resources of the Web page are identified by a number of embedded resource identifiers, such as uniform resource locators (“URLs”). In turn, software on the client computing devices typically processes embedded resource identifiers to generate requests for the content. Often, the resource identifiers associated with the embedded resources reference a computing device associated with the content provider such that the client computing device would transmit the request for the additional resources to the referenced content provider computing device. Accordingly, in order to satisfy a content request, the content provider(s) (or any service provider on behalf of the content provider(s)) would provide client computing devices data associated with the Web page and/or the data associated with the embedded resources.
Some content providers attempt to facilitate the delivery of requested content, such as Web pages and/or resources identified in Web pages, through the utilization of a network storage provider or a content delivery network (“CDN”) service provider. A network storage provider and a CDN server provider each typically maintain a number of computing devices, such as resource cache components, in a communication network that can maintain content from various content providers. In turn, content providers can instruct, or otherwise suggest to, client computing devices to request some, or all, of the content provider's content from the network storage provider's or CDN service provider's computing devices.
In some scenarios, resources that have been provided to storage service providers or CDN providers can be updated by the content provider (or other party) or otherwise are considered by the content provider to no longer be valid. In such scenarios, storage providers and CDN service providers receive the updated resource (or notification of an invalid resource) and manage each of the cache server components that are distributing the previously provided version of the resource. Because of the distributed nature of content providers, storage service providers, and CDN service providers, CDN service providers are often required to implement some type of functionality to manage the invalidation of previously provided resources with updated resources. In one embodiment, resource cache components can associate a time to refresh with the resources maintained at the resource cache components. Upon expiration of the time to refresh, the resource cache component requests the resource from the origin source (e.g., a content provider or a network storage provider) and replaces the previous version of the resource with an updated version of the resource or otherwise resets the time to refresh parameters. However, management of resources utilizing time to refresh parameters can be inefficient. In one aspect, associating shorter time to refresh parameters to resources can become burdensome by the increased frequency of update requests transmitted by the resource cache components. In another aspect, associating longer time to refresh parameters can increase the likelihood that the resource cache components continue to distribute invalid, expired or incorrect resources before obtaining the updated resources from the origin source.